package com.gwcloud.leetcode.offers;

import java.util.LinkedList;
import java.util.List;

/** 
* @ClassName   : Leetcode0460 
* @author      : ganwei 
* @date        : 2020年6月6日 
* @Description : TODO 
*/
public class Leetcode0460 {
    /**
     * -解题思路，动态规划
     */
	public int translateNum(int num) {
		if(num < 10){
            return 1;
        }
        List<Integer> l = new LinkedList<Integer>();
		while(num != 0) {
			l.add(0, num % 10);
			num /= 10;
		}
		int[] nums = new int[l.size()];
		
		for(int i = 0; i < nums.length; i++) {
			nums[i] = l.get(i);
		}
		
		int[] dp = new int[l.size()];
		
		dp[0] = 1;
		int t2 = nums[0]*10 + nums[1];
		if(t2 >= 0 && t2 <= 25) {
			dp[1] = 2;
		}else {
			dp[1] = 1;
		}
		for(int i = 2; i < l.size(); i++) {
			dp[i] += dp[i-1];
			int t = nums[i-1]*10 + nums[i];
			if(nums[i-1] != 0 &&t >= 0 && t <= 25) {
				dp[i] += dp[i-2];
			}
		}
		
		return dp[l.size()-1];     
    }
    
    /**
     * -主函数
     */
    public static void main(String[] args) {
    	
    }
}
